package com.itcam.cli.command;

import cn.hutool.core.io.FileUtil;
import picocli.CommandLine.Command;

import java.io.File;
import java.util.List;

/**
 * @author : Cammy.Wu
 * Description : 查看要生成的原始文件列表信息
 */

/**
 * 表示查看文件列表的命令类。
 * 该类实现了 Runnable 接口，用于执行查看文件列表的操作。
 */
@Command(name = "list", description = "查看文件列表", mixinStandardHelpOptions = true)
public class ListCommand implements Runnable {
    /**
     * 执行查看文件列表的操作。
     * 该方法获取项目根路径，构建输入路径，然后遍历该路径下的所有文件并打印出来。
     */
    @Override
    public void run() {
        // 获取项目的根路径
        String projectPath = System.getProperty("user.dir");
        System.out.println(projectPath);
        // 获取项目根路径的父目录
//        File parentFile = new File(projectPath).getParentFile();
//        System.out.println(parentFile);
        // 构建输入路径，指向 open_source-code/acm-template 目录
        String inputPath = new File(projectPath, "open-source-code-demo-projects/acm-template").getAbsolutePath();
        System.out.println(inputPath);
        // 遍历输入路径下的所有文件
        List<File> files = FileUtil.loopFiles(inputPath);
        // 打印每个文件的路径
        for (File file : files) {
            System.out.println(file);
        }
    }
}

